/*
 * SRM 183 Div 1 Prob 2
 */

import java.util.*;
import java.util.regex.*;
import java.text.*;
import java.math.*;


public class TVTower
{
    int[] x, y;
    int N;
    
    public double dis (double cx, double cy, int i)
    {
	return Math.sqrt((cx - x[i]) * (cx - x[i]) + (cy - y[i]) * (cy - y[i]));
    }
    
    
    public double getR (double cx, double cy)
    {
	double ans = 0;
	for (int i = 0; i < N; ++i) 
	    ans = Math.max(ans, dis (cx, cy, i));
	return ans;
    }
    

    
    public double minR1 () {
	double ans = Double.MAX_VALUE;
	for (int i = 0; i < N; ++i)
	    for (int j = i + 1; j < N; ++j) {
		double cx = 0.5*(x[i] + x[j]);
		double cy = 0.5*(y[i] + y[j]);
		ans = Math.min (ans, getR (cx, cy));
	    }
	return ans;
    }

    
    public double[] getCenter (int i, int j, int k) {
	int x1 = x[i], x2 = x[j], x3 = x[k], y1 = y[i], y2 = y[j], y3 = y[k];
	if ((x2-x1)*(y3-y1) - (x3-x1)*(y2-y1) == 0) 
	    return null;
	int cx1 = x1+x2, cy1 = y1+y2, cx2 = x1+x3, cy2 = y1+y3;
	/* (x2-x1)(2*x-cx1) + (y2-y1)(2*y-cy1) = 0
	 * */
	int A1 = 2*(x2-x1), B1 = 2*(y2-y1), C1 =x2*x2+y2*y2-x1*x1-y1*y1;
	int A2 = 2*(x3-x1), B2 = 2*(y3-y1), C2 =x3*x3+y3*y3-x1*x1-y1*y1;
	/* Solve
	 * A1x + B1y = C1;
	 * A2x + B2y = C2;
	 */
	double cx = 0, cy = 0;
	if (A1 != 0 && B1 != 0 && A2 != 0 && B2 != 0) {
	    cx = ((double)C1/B1-(double)C2/B2)/((double)A1/B1-(double)A2/B2);
	    cy = ((double)C1/A1-(double)C2/A2)/((double)B1/A1-(double)B2/A2);
	} else if (A1 == 0) {
	    cy = (double)C1/B1;
	    cx = (double)(C2 - B2*cy)/A2;
	} else if (B1 == 0) {
	    cx = (double)C1/A1;
	    cy = (double)(C2 - A2*cx)/B2;
	} else if (A2 == 0) {
	    cy = (double)C2/B2;
	    cx = (double) (C1 - B1*cy)/A1;
	} else if (B2 == 0) {
	    cx = (double)C2/A2;
	    cy = (double) (C1 - A1*cx)/B1;
	}
	return new double[]{cx,cy};
    }
    
    public double minR2 () {
	double ans = Double.MAX_VALUE;
	for (int i = 0; i < N; ++i)
	    for (int j = i + 1; j < N; ++j)
		for (int k = j + 1; k < N; ++k) {
		    double[] c = getCenter (i, j, k);
		    if (c == null) {
			continue;
		    }
		    ans = Math.min (ans, getR (c[0], c[1]));
		    
		}
	return ans;
    }
    
    public double minRadius(int[] x, int[] y)
    {
	this.x = x;
	this.y = y;
	N = x.length;
	if (N == 1)
	    return 0;
	if (N == 2)
	    return minR1 ();

	return Math.min(minR1 (), minR2 ());
    }
    
    <%:testing-code%>
}
//Powered by KawigiEdit 2.1.4 (beta) modified by pivanof!